﻿using FluentNHibernate.Mapping;

namespace Neturion.Dados
{
    public class MapAssunto : ClassMap<Assunto>
    {
        public MapAssunto()
        {
            Table("assuntos");
            Id(x => x.AssuntoId);
            Map(x => x.Codigo).Unique().Index("idx_Codigo");
            Map(x => x.Descricao);
            Map(x => x.FimVigencia);
            Map(x => x.InicioVigencia);
            Map(x => x.DataCadastro);
            Map(x => x.PrazoResolucao);
            Map(x => x.Observacao).CustomSqlType("TEXT");
            References(x => x.TipoAssunto).Not.LazyLoad();
            References(x => x.FuncionarioResponsavel).Not.LazyLoad();
            References(x => x.SetorResponsavel).Not.LazyLoad();
            References(x => x.NeturionLog).Not.LazyLoad();
            HasMany<AssuntoProcedimento>(x => x.ListaAssuntoProcedimentos).Not.LazyLoad().Cascade.AllDeleteOrphan();
            HasManyToMany<MotivoProtocolo>(x => x.ListaMotivosProtocolo)
                .Table("motivosassuntos")
                .ParentKeyColumn("AssuntoId")
                .ChildKeyColumn("MotivoProtocoloId")
                .Not.LazyLoad();
        }
    }
}